Method for creating a virtual object

ABSTRACT

A computer-implemented method for creating a virtual object; the method comprising: obtaining a digital representation of a real-world object, the digital representation representing a visual appearance of a shape of the real-world object; obtaining an input indicative of one or more properties of an entity different from the real-world object; creating a virtual object representing the real-world object; and assigning, based on at least the obtained input, an attribute to the created virtual object.

FIELD OF THE INVENTION

The invention relates to a computer-implemented method of creating avirtual object based on a digital representation of a real-world object,such as a toy construction model constructed from toy constructionelements of a toy construction system.

BACKGROUND

Toy construction systems have been known for decades. Over the years,simple box-shaped building blocks have been supplemented with otherconstruction elements with either a specific appearance or a mechanicalor electrical function to enhance the play value. Such functions includee.g. motors, switches and lamps, but also programmable processors thataccept input from sensors and can activate function elements in responseto received sensor inputs.

Several attempts have been made to control virtual game play by means ofreal-world, physical toys.

For example, US 2011/298922 discloses a system for extracting an imageof a physical object. The extracted image can be digitally representedon a display device as part of a virtual world, or video game, where theobjects inhibiting the virtual world and/or video game, were designedand built from the construction set in the real-world. However, in manyvideo games or other virtual environments it is desirable to providethree-dimensional virtual objects that experience a rich behaviour.

According to at least one aspect, it is thus desirable to provide aprocess for creating three-dimensional virtual objects that exhibit arich functional behaviour from real-world objects in a user-friendlymanner. In particular, it is desirable to provide such a method in whichthe user is not required to go through a large number of steps toconfigure and modify the resulting virtual object, e.g. where thecreation of the virtual object is performed in at least a partlyautomated fashion, requiring only little user interaction.

WO 2015/185629 discloses a toy construction system comprising aplurality of toy construction elements and an image capture deviceoperable to capture one or more images of a toy construction modelconstructed from one or more of said toy construction elements. Thisprior art system further comprises a processor configured to determineone or more visual attribute parameters indicative of a respectivevisual attribute derivable from one or more of a color, a shape and asize of the toy construction model. The processor is further configuredto create a virtual object in a computer-generated virtual environment,and to control the virtual object in the computer-generated virtualenvironment to have a behaviour based on the determined one or morevisual attribute parameters.

According to at least one aspect, it is desirable to provide a methodand system that allow three-dimensional virtual objects to be createdfrom real-world objects, such as from real-world toy constructionmodels, in a user-friendly yet, preferably, reliable and accuratemanner. In particular, it is desirable to provide methods and systemsthat are easy to use and that provide 3D representations of virtualobjects that have a high degree of functionality in a virtualenvironment such as in a video game. It is also desirable to providevirtual objects that accurately represent the 3D shape of acorresponding real-world object.

It is generally desirable to provide a toy construction system thatenhances the educational and/or play value of the system. It is alsodesirable to provide a toy construction system wherein a set ofconstruction elements may easily be used in different toy constructionmodels and/or in combination with existing toy construction elements.Moreover it is desirable to provide a toy construction system thatallows users, in particular children, to construct multiple toy modelsin a user-friendly, efficient, yet flexible and reliable manner. Inparticular, it is desirable to provide a toy construction system thatallows a user-friendly and flexible manner of creating virtual objectsin a virtual environment such as a game system.

Various aspects of the invention disclosed herein may address at leastsome of the disadvantages of prior art systems.

SUMMARY

According to a first aspect, disclosed herein is a method, implementedby a data processing system, for creating a virtual object in a virtualenvironment; the method comprising:

-   -   obtaining a digital representation of a real-world object, the        digital representation representing a visual appearance of a        shape of the real-world object;    -   obtaining an input indicative of one or more properties of an        entity different from the real-world object;    -   creating a virtual object representing the real-world object;        and    -   assigning, based on at least the obtained input, an attribute to        the created virtual object.

Consequently, one or more captured images of the real-world object, oranother form of digital representation of the visual appearance of thereal-world object, may be used by a data processing system executing themethod as a basis for generating a virtual object having a user-definedappearance and attributes in a virtual environment. For example, a usermay create a real-world toy construction model or otherwise select orcreate a real-world object resembling an asset to be used as a virtualobject in a computer-generated virtual environment. The method providesthe user with a flexible, yet easy-to understand and easy-to usemechanism for influencing the desired appearance and attributes of thevirtual object in the virtual environment.

In particular, virtual environments and play scenarios with richfunctional behaviour may be created when attributes are assigned to thevirtual object based on one or more properties of an entity differentfrom the real-world object, e.g. based on one or more properties of thedata processing system executing the method, of the virtual environment,of another virtual object, of a device external to the data processingsystem, of a user of the data processing system, of a physicalenvironment of the data processing system, of a network environment ofthe data processing system, or of a combination thereof.

As the user may construct the real-world object from toy constructionelements, the user has a large degree of freedom as to how the object isconstructed.

The digital representation of the visual appearance of the real-worldobject may be a suitable representation indicative of a shape of thereal-world object, e.g. a three-dimensional shape of the real-worldobject. In particular, the digital representation may represent a pointcloud and/or a surface geometry of the real-world object. The digitalrepresentation may further include information of visible properties ofthe real-world object, e.g. one or more colors, surface texture, and/orthe like. For example, the digital representation may be a surfacerepresentation, e.g. in the form of a 3D mesh, or a volumerepresentation, e.g. a voxel-based representation, of the real-worldobject.

The process may obtain the digital representation in a number of ways.In particular, the process may receive the digital representation orcreate the digital representation from other suitable input data.

In particular, in some embodiments, obtaining the digital representationmay comprise receiving a previously created digital representation, e.g.by retrieving a digital representation from a data storage device, bydownloading a digital representation from a remote data processingsystem or computer network, or by otherwise transferring the digitalrepresentation from one device to another device.

In some embodiments, the process may receive the digital representationor the other input data from one or more sensor devices operable tosense a visual appearance, e.g. shape and/or color, of the real worldobject. To this end, the sensor device may be operable to captureradiation from the real-world object. A sensor device may comprise oneor more sensors that detect light or other forms of electromagneticradiation, such as light or other electromagnetic radiation reflected bysurfaces of a real-world object in a field of view of the sensor device.The sensor device may comprise an array of sensors, such as a CCD chip,or a single sensor that is operable to scan across a field of view, or acombination of a number of sensors that are scanned. Hence, thereal-world object may be passive in that it does not need to activelyemit any sound, light, radio-signals, electrical signals, or the like.Moreover, the sensor device may be operable to sense the visualappearance of the real-world object, e.g. to capture radiation, in acontactless fashion and/or without the establishment of any electricalcontact, communications interface or the like between the sensor deviceand the real-world object.

In some embodiments, the sensor device comprises an image capture deviceoperable to capture two or more images of the real-world object when thereal-world object is placed within a field of view of the image capturedevice, e.g. on a suitable object support, wherein the two or moreimages are taken from different viewpoints relative to the real-worldobject. Each image may be a picture or another form of two-dimensionalrepresentation of a field of view of the image capture device whichrepresentation allows the determination of a shape and/or color and/orsize of an object within the field of view. The image may comprise a 2Darray of pixels or other array elements, each array element representingsensed information associated with a point or direction within the fieldof view. The sensed information may include an intensity of a receivedradiation or wave, a frequency/wavelength of the received radiation orwave, a distance map, a polarisation map, a map of surface normal,and/or other suitable sensed quantity.

Accordingly, the image capture device may comprise one or more digitalcameras responsive to visible light, to infrared light, and/or the like.For example, the image capture device may comprise two digital camerasadapted at respective viewpoints relative to the object support, e.g. atrespective elevations relative to the object support. The image capturedevice may comprise one or more depth cameras operable to also detectdistance information of respective points within the field of viewrelative to the camera position. Some embodiments of a sensor device maycomprise a laser. In some embodiments, the image capture device isconfigured to capture depth information in addition to light intensitydata (such as RGB data). In some embodiments, the image capture deviceis configured to capture information indicative of surface normals ofone or more surfaces within a field of view of the digital camera. Forexample, an image capture device may be configured to obtainpolarisation data of the received light. The image capture device and/orthe data processing system may be configured to determine local surfacenormals from the obtained polarisation data. The captured surfacenormals may also be transformed into a world coordinate system based onthe detected tilt or other displacements of the turntable relative tothe camera. Examples of camera sensors that are capable of detectingsurface normals include the system disclosed in U.S. Pat. No. 8,023,724.Other examples of techniques for determining surface normal include thetechniques described in “Rapid Acquisition of Specular and DiffuseNormal Maps from Polarized Spherical Gradient Illumination” by Wan-CunMa et al., Eurographics Symposium on Rendering (2007), Jan Kautz andSumanta Pattanaik (Editors). The sensor device may output analogue ordigital signals indicative of the captured radiation, e.g. of one ormore captured images, e.g. as digital images or other data maps, as avideo stream, and/or the like.

The digital representation may be a 2D or a 3D representation. Theprocess for creating the digital representation may include multiplestages of a multi-stage process for creating a 2D or 3D digitalrepresentation based on the captured radiation, e.g. based on capturedimages. In some embodiments, the process uses a suitable scheme forsensor pose estimation, e.g. based on a non-repeating colored patternarranged on a turntable on which the real-world object is placed. Thecolored pattern may then be image-processed macroscopically and/orthrough a distance-to-edge measurement. Other embodiments may usemarkers.

Accordingly, the process may comprise creating a 2D or 3D digitalrepresentation from light intensity data and/or from other sensed data,such as depth data, e.g. in the form of one or more depth maps, frompolarisation data and/or surface normal data or a combination thereof.The process may use structure from motion techniques, space carvingtechniques or other suitable techniques. If the sensor provides a fieldof detected surface normals, these may be used to detect markerfeatures, e.g. edges or corners or other features with abrupt changes insurface normal directions, for use in a structure from motion process.In other embodiments the detected surface normal may be used totransform a voxel representation of the object (e.g. as obtained by aspace carving process) into an accurate surface mesh. Generally, the 3Ddigital representation may include any suitable type of representation,e.g. a surface mesh of polygons, a voxel representation, etc. or acombination thereof.

Generally, obtaining a digital representation by a sensor deviceoperable to sense the visual appearance of the real-world object willalso be referred to as “scanning” the real-world object.

The process creates a virtual object and it may associate a visualrepresentation of the virtual object to the virtual object so as toallow rendering the virtual object within a virtual environment. Thevisual representation may be the obtained digital representation of thereal-world object or a visual representation derived therefrom. Forexample, some embodiments of the method disclosed herein may process thereceived digital representation to create the visual representation ofthe virtual object. Examples of this processing may include one or moreof the following: a change in the spatial resolution, a scaling, amodification of one or more colors, a smoothing operation, and/or thelike. The visual representation of the virtual object may be a 2Drepresentation or a 3D representation, e.g. in the form of athree-dimensional graphical representation. It is generally preferredthat the virtual object has an appearance in the virtual environmentthat resembles the real-world object, i.e. that the visualrepresentation defines a likeness of the real-world object or at leastof the digital representation thereof. The created virtual object,optionally including its associated visual representation and/orassociated attributes, may be transferred from one device to anotherdevice, stored by a data storage device, downloaded from a computernetwork and/or the like. For example, a user may scan multiplereal-world objects, cause the process to create corresponding virtualobjects and store the thus created virtual objects, e.g. for later useduring a game, for sharing with friends etc. Hence, the user may createa personal library of virtual objects that have respective attributesassociated with them. The virtual objects may then be used at a laterpoint, e.g. as virtual characters, accessories, weapons, vehicles, etc.

In some embodiments, the process creates the visual representation as adata structure comprising a surface representation of the virtual objectfor drawing the virtual object. If movements of the virtual object areto be animated in the virtual environment, creating the visualrepresentation of the virtual object may further include creating a datastructure representing a skeleton of bones for animating the virtualobject. Creating the visual representation may thus comprise creatingthe surface representation to define a shape and/or size/and/or colorbased on the detected shape and/or size and/or color of the real-worldobject and creating the skeleton to have a shape and size based on thedetected shape and/or size of the real-world object. For example,creating the skeleton may comprise selecting one of a set of skeletontemplates and a scaling the skeleton template based on the detected sizeand shape of the real-world object; in some embodiments, a singletemplate may suffice. For example the template skeleton may be definedsuch that the virtual object is animated so as to resemble a certaintype of figure, such as a human-like figure having arms and legs andbeing animated to resemble a walking figure, or an animal having fourlegs, or a bird having wings and performing a flying movement, or a fishor snake-like figure being animated to perform a swimming or glidingmovement. Selecting a skeleton template may be performed automatically,e.g. based on the detected shape of the toy construction model, and/orbased on a user selection, e.g. a selection of the type of character tobe created, such as a fish, a snake, a four-legged animal, etc. In someembodiments, creating a skeleton of the virtual object is based on anobtained digital representation of another real-world object, e.g. askeleton real-world object representing a skeleton of the real-worldobject from which a virtual object is created.

In some embodiments, the process creates the visual representation (e.g.a 3D representation) of the virtual object such that the virtualobject—or only a part of the virtual object—appears to be constructedfrom toy construction elements. To this end, the process may create avirtual construction model created from virtual construction elementscorresponding to the real-world toy construction elements of the toyconstruction system. In particular, in some embodiments, the processcreates a data structure comprising information about a number ofconstruction elements and their relative position and orientationrelative to another and/or relative to a suitable coordinate system. Thedata structure may further comprise information, for each constructionelement of the virtual model, about the type of construction element,its color and/or further features, such as a weight, surface textureand/or the like. In some embodiments, the data structure representing avirtual construction element further comprises information about thetype and positions of the coupling members of the construction element.Accordingly, the data structure of the virtual model may compriseconnectivity information indicative of which virtual constructionelements are interconnected with each other via which of theirrespective coupling members. An example of such a data structure isdescribed in U.S. Pat. No. 7,439,972.

Alternatively or additionally, the process may create the visualrepresentation with visible recurring features common to all or some toyconstruction elements of the system, such as coupling members. In someembodiments, the process detects positions of coupling members of toyconstruction elements of the real-world object and adds graphicalrepresentations of corresponding coupling members at correspondingpositions of the visual representation.

The visual representation may be associated with a virtual object in avideo game or other form of virtual environment. The various aspectsdescribed herein may be implemented with a variety of game systems orother computer-implemented entertainment, social or educational systems,e.g. systems including computer-generated virtual environments.Generally, a virtual object may represent a virtual character such as ahuman-like character, an animal-like character, a fantasy creature, etc.Alternatively, a virtual object may be an inanimate object, such as abuilding, a vehicle, a plant, a weapon, etc. In some embodiments,virtual objects whose counterparts in the real-world world areinanimate, e.g. a car, may be used as an animate virtual character in avirtual environment. Hence, in some embodiments the virtual object is avirtual character and, in some embodiments, the virtual object is aninanimate object. Accordingly, the process may comprise storing thevirtual object so as to make the virtual object available in the virtualenvironment independently of the presence of the real-world object, orotherwise for subsequent retrieval, e.g. during a subsequent usersession, subsequent to the user session during which the virtual objectwas created.

A virtual character may exhibit behaviour by moving around within thevirtual environment, by interacting with or generally engaging othervirtual characters and/or with inanimate virtual objects present in thevirtual environment and/or with the virtual environment itself and/or byotherwise evolving within the virtual environment, e.g. growing, aging,developing or loosing capabilities, attributes or the like. Generally,virtual objects have attributes, e.g. one or more capabilities, thatinfluence the game play or other evolution of a virtual environment. Forexample, a car may have a certain maximum speed, or an object may havean attribute that determines whether or how a virtual character mayinteract with the virtual object, and/or the like.

To this end, the process comprises assigning one or more virtualattributes, e.g. behavioural attributes such as capabilities, needs,preferences or other attributes of the virtual object, or othergame-related attributes to a virtual object. While at least one of thevirtual attributes is at least in part based on one or more propertiesof an entity different from the real-world object, some or allattributes may at least partly be based on detected visualcharacteristics of the real-world object, e.g. by using a mechanism asdisclosed in international patent application PCT/EP2015/062381.

An attribute may be a global attribute indicative of a characteristic ofthe virtual object as a whole or a local attribute that is associatedwith a part of the virtual object, e.g. with a location relative to thevisual representation of the virtual object, e.g. a location on asurface of the virtual object. For example, the process may createfunctional elements of a virtual object such as movable parts, partsthat can be user-controlled, parts that can change appearance, partsthat can interact with other virtual objects or with the virtualenvironment, etc. or that have other forms of functional attributesassociated with them.

The attributes assigned to the virtual object may include one or moreglobal attributes indicative of a property of the virtual object as awhole. Examples of global attributes may include one or more of thefollowing: attributes indicative of a capability or skill, attributesindicative of an energy level, attributes indicative of a globalbehaviour of the object, and/or the like. Yet further examples of globalattributes include an ability to move, e.g. an ability to fly or to moveacross a surface, a speed and/or mode of movement, etc. Other examplesof attributes include local attributes that are associated withrespective parts of the virtual object rather than with the virtualobject as a whole. For example, local attributes may be indicative of afunctional capability of a part of the object, e.g. an attributeindicative of a capability of a part of the virtual object to be movedrelative to the remainder of the virtual object or relative to anotherpart of the virtual object. Other examples of local attributes may beindicative of a capability of a part of the virtual object to dischargeone or more virtual discharge elements, such as virtual projectiles,virtual light beams, virtual fluids and/or other virtual effects. Yetfurther examples of local attributes may include a capability of a partof the virtual object to interact with other virtual objects, e.g. toestablish a connection, to exchange virtual elements, and/or the like.Generally, local attributes include functional/behavioural attributesthat represent a function/behaviour different from static attributeslike color, texture, etc that do not change.

At least one of the virtual attributes assigned to the created virtualobject is at least in part based on one or more properties of an entitydifferent from the real-world object. The entity may be internal to thedata processing system executing the process or it may be an externalentity, different from the data processing system. The property of theentity may be detected by the data processing system executing theprocess or it may be detected by an external detection device, differentfrom the data processing system. The entity may be a physical entity ora virtual entity, e.g. a virtual entity of the game or virtualenvironment. The property may be the identity of the entity, a visibleor otherwise detectable quality or measurable quantity of the entity,information stored by the entity, etc.

In some embodiments, the detection device is an electronic device.Accordingly, the process obtains an input from an electronic devicewhich may be a part of or communicatively connectable with the dataprocessing system and the input may be indicative of a currentoperational state of the electronic device, an input received by theelectronic device or another property of the electronic device. Theelectronic device may be a game controller and the input may beindicative of an input received by the game controller, in particular aninput different from a selection of a user selection of an attributefrom a list or menu of available attributes. In another example, theelectronic device comprises a sensor and the input is indicative ofquantity sensed by the sensor, e.g. a quantity indicative of a propertyof the device itself, a property of an environment of the device, or aproperty of an object separate from the device.

In some embodiments, the process obtains an input from a data processingsystem executing a digital game and the input may be indicative acurrent state of the digital game, e.g. game session data. The dataprocessing system executing the digital game may be the same dataprocessing system that performs the process disclosed herein or adifferent data processing system. In particular, the digital game maycomprise the virtual environment and the process may create the virtualobject in the virtual environment of the digital game. For example, auser may have been engaged in a digital game for a while using anexisting virtual character. The player then scans a real-world object(e.g. a toy construction model constructed by the user) so as to causethe system to create a new virtual object. The process may then assignone or more properties (e.g. experience points, capabilities, etc.) fromthe existing character to the newly created virtual object. In anotherexample, the process receives an input indicative of a current locationwithin the virtual environment (e.g. a location where the playercharacter of a digital game is currently located), and assigns one ormore attributes to the created virtual object depending on the currentlocation. For example, some attributes may be only available at certaingame locations or at certain game states.

In some embodiments, the process obtains an input indicative of one ormore properties of another virtual object, i.e. the entity is anothervirtual object. Accordingly, the assigned attribute may be arelationship between the created virtual object and the other virtualobject, e.g. a membership of the same team or an opposite team. Otherexamples include the created virtual object inheriting one or moreattributes from another virtual object, e.g. a previously createdvirtual object. In yet another example, the assigned attribute definesan interaction of the created virtual object and the other virtualobject, e.g. how the virtual object can be interconnected or otherwisebe combined so as to form a combined virtual object. This interactionmay thus also depend on a property (e.g. the shape or connectivityproperties) of the other virtual object.

In some embodiments, the other virtual object is a virtual objectcreated based on another obtained digital representation of anotherreal-world object, the other digital representation representing avisual appearance of a shape of the other real-world object.Alternatively, the other virtual object may be any other, e.g.pre-existing, virtual object that is already available in the virtualenvironment when the new virtual object is created.

In some embodiments, the method comprises:

-   -   obtaining a first digital representation of a first real-world        object;    -   obtaining a second digital representation of a second real-world        object;    -   creating a virtual object, at least a part of the virtual object        having a visual appearance of a likeness of the second        real-world object;    -   assigning an attribute to virtual object; wherein the attribute        is determined at least in part based on the obtained first        digital representation.

One or each of the first and second real-world objects may be arespective toy construction model being constructed from respectivepluralities of toy construction elements, each toy construction elementcomprising one or more coupling members configured for detachablyinterconnecting the toy construction elements with each other. One orboth of the obtained digital representations may be indicative of avisual appearance of the respective real-world objects. The createdvirtual object may have a visual appearance of a likeness of the secondreal-world object or of a combination of the first and second real-worldobjects, e.g. of a combined toy construction model constructed byattaching the first and second real-world toy construction models toeach other.

Accordingly, the user may define an appearance of a virtual object (orof a part thereof) based at least in part on one real-world object whiledefining one or more attributes of the virtual object based at least inpart on another real-world object. This may in particular be useful whenit is difficult to discern both the visual appearance and the attributesfrom the same real-world object, e.g. because a part of the virtualobject to which the attribute is to be assigned may be difficult toidentify, e.g. because the part is obstructed from view by other partsof the virtual object.

For example, the attribute may include the identification of one or morejoints or otherwise of parts of a toy construction model that aremovable relative to each other or that are operable to perform anotherfunction. These parts may be more easily identifiable in a partial toyconstruction model where not all toy construction elements have yet beenadded. Accordingly, assigning an attribute may comprise:

-   -   detecting at least one part of the first real-world toy        construction model that is operable to perform a function and,        optionally, detection said function.    -   determine a corresponding part of the created virtual object;        and assigning a virtual function to the determined corresponding        part based on the detected at least one part of the first        real-world toy construction model.

In particular, in some embodiments, assigning an attribute may comprise:

-   -   detecting at least two parts of the first real-world toy        construction model that are movable relative to each other;    -   determining corresponding two parts in the created virtual        object; and representing a movement of the determined        corresponding two parts relative to each other based on the        detected at least two parts of the first real-world toy        construction model.

The first toy construction model may be a skeleton or otherwise apartial model that includes functional or movable parts such that theyare clearly visible and, thus, clearly identifiable in a correspondingdigital representation of the model. The second toy construction modelmay comprise the first toy construction model as a sub-model andadditional toy construction elements connected to the first toyconstruction model. Assigning the movable parts to the virtual objectcreated from the second toy construction model may thus be performedbased on the information obtained from the digital representation of thefirst toy construction model.

In another embodiment, the attribute is indicative of at least a firstand a second state of the virtual object; and wherein the methodcomprises:

-   -   representing at least a first and a second state of the virtual        object; wherein the first state is based on the obtained first        digital representation and the second state is based on the        obtained second digital representation.

For example, the real-world object (e.g. the real-world toy constructionmodel) may be transformed between one visual appearance and a secondvisual appearance, e.g. by moving movable parts relative to each other,by repositioning toy construction elements and/or by replacing, addingand/or removing toy construction elements. The created virtual objectmay thus also be rendered or otherwise represented in two or morestates, e.g. standing and flying, or collapsed and expanded, or happyand angry, etc. One of the states may be represented by the visualappearance of the second real-world object and another state may berepresented by the first real-world object. Accordingly the assignedattribute may represent an alternative appearance of the virtual object.It will be appreciated that the alternative appearance may also beassociated with alternative or additional capabilities or othercharacteristics of the virtual object, e.g. the capability to fly, anincreased strength, etc. It will be appreciated that the process maycomprise associating more than two states to a virtual object, e.g. byobtaining digital representations of more than two real-world objects.Alternatively or additionally, the process may include representingintermediate states e.g. transitional states illustrating atransformation or transition between the first and the second state. Thetransformation or transition between the states may be triggered by agame event, e.g. by a user input.

In some embodiments, the attribute is indicative of a function orcapability of the virtual object or a part thereof.

In some embodiments, the attribute is indicative of a visual appearanceof the virtual object; and the method comprises representing the virtualobject as a combined virtual object, combined from a first object partresembling the first real-world object and a second object partresembling the second real-world object.

Accordingly the user may construct a virtual object from individual partobjects where the user separately obtains respective digitalrepresentations of each of the part objects. It will be appreciated thatthe user may create respective virtual objects from the respectivereal-world objects and the combine them in the virtual environment, e.g.responsive to a user input or other game event.

In particular, in some embodiments, the first and second real-worldobjects are toy construction models and the method comprises:

-   -   detecting, based on the obtained first digital representation; a        first connection element of the first real-world toy        construction model;    -   detecting, based on the obtained second digital representation;        a second connection element of the second real-world toy        construction model, the second connection element being able to        engage the first connection element so as to interconnect the        first and second real-world toy construction models with each        other;    -   representing the virtual object as a combined virtual object,        combined from a first object part resembling the first        real-world toy construction model and a second object part        resembling the second real-world toy construction model; wherein        the first and second object parts are interconnected at        respective first and second virtual connection elements        corresponding the respective first and second connection        elements of the first and second real-world toy construction        models.

Accordingly, the process may detect parts of the respective virtualobjects where the virtual objects can be connected to each other.Optionally, the process may also detect a type of connection that adetected connection element provides, e.g. a rigid connection, a hingedconnection, a rotatable connection or otherwise movable connection, etc.

The connection elements may comprise coupling members of the toyconstruction elements or a predetermined subset of detectable couplingmembers or a predetermined subset of toy construction elements that aredetectable as connection elements.

Generally, the coupling members of the toy construction elements mayutilise any suitable mechanism for releasably connecting constructionelements with other construction elements. In some embodiments, thecoupling members comprise one or more protrusions and one or morecavities, each cavity being adapted to receive at least one of theprotrusions in a frictional engagement.

In some embodiments, the toy construction elements may adhere to a setof constraints, e.g. as regards to their shapes and size and/or asregards the positions and orientations of the coupling members and tothe coupling mechanism employed by the coupling members. In someembodiments, at least some of the coupling members are adapted to definea direction of connection and to allow interconnection of eachconstruction element with another construction element in a discretenumber of predetermined relative orientations relative to theconstruction element. Consequently, a large variety of possible buildingoptions are available while ensuring interconnectivity of the buildingelements. The coupling members may be positioned on grid points of aregular grid, and the dimensions of the toy construction elements may bedefined as integer multiples of a unit length defined by the regulargrid. It will be understood that a three-dimensional grid may be definedby a single unit length, by two unit lengths, e.g. one unit lengthapplicable in two spatial dimensions while the other unit length isapplicable in the third spatial dimension. Yet alternatively, thethree-dimensional grid may define three unit lengths, one for eachspatial dimension. Coupling members consistent with the toy constructionsystem thus adhere to the connectivity rules imposed by the toyconstruction system, e.g. including the type, position and/ororientation of the coupling members, and they are configured to engagemating coupling elements of one or more of the toy construction elementsof the toy construction system.

Accordingly, the first and/or second connection elements may beindividual coupling members of the toy construction system orcombinations of coupling members, e.g. a grid of coupling members, agrid of coupling members of a predetermined shape and/or size and/or thelike.

According to some embodiments, the second plurality of toy constructionelements includes the first plurality of toy construction elementsoptionally even as a coherent substructure formed by the first toyconstruction model. In some embodiments, the first and second pluralityof toy construction elements are the same while in other embodiments,the first plurality is a true subset of the second plurality. In yetalternative embodiments, the first plurality only comprises some or evenno toy construction elements that are also present in the secondplurality of toy construction elements.

Generally, the assigned attribute may be selected automatically,manually by a user or semi-automatic, e.g. in a user-assisted manner.For example, the process may automatically determine a set of possibleattributes based at least in part on a property of an entity differentthan the real-world object and allow a user to select one of thedetermined set of possible attributes.

According to some embodiments, the method comprises:

-   -   selecting a part of the virtual object; and    -   assigning one or more local attributes to the selected part of        the virtual object.

The part of the virtual object to which a local attribute is assignedmay be identifiable as a part of visual representation of the virtualobject. For example, in embodiments where the visual representation ofthe virtual object comprises a plurality of geometry elements, e.g. aplurality of surface elements of a mesh representing a surface of thevirtual object or a plurality of voxels of a volume representation ofthe virtual object, the selected part may comprise a selected subset ofthe geometry elements.

Selecting a part of the virtual object may be performed automatically,e.g. based on one or more detected features of the virtual object, oruser-assisted, e.g. at least partly responsive to a user input.

In some embodiments, selecting a part of the virtual object comprisesdetecting, based on the visual representation of the virtual object, apredetermined feature of the virtual object, such as a geometricfeature. The geometric feature may e.g. be a predetermined geometricshape, such as a circle, an ellipse, a polygon or the like. In someembodiments, the detection of a feature may comprise recognition of oneor more object components. For example, in embodiments where thereal-world object is a real-world toy construction model constructedfrom individual toy construction elements, the detected feature may beone or more recognised toy construction elements that are part of thereal-world toy construction model.

In some embodiments, the user may indicate a portion of the virtualobject and the process may then detect a predetermined feature withinthe user-selected portion. The process may then select a part of thevirtual object based on the detected feature. For example, the processmay select the detected feature as the selected part or the process mayselect a part of the virtual object in a proximity of the detectedfeature as the selected part. Generally, a user may indicate a portionof the virtual object in a number of ways. For example, a user mayindicate, e.g. using a pointing device or another pointing mechanism, acontour of a region within a representation of the virtual model on adisplay. Alternatively, the user may point to a location on the surfaceof the virtual surface, and the process may determine a part of thevirtual object as a part having one or more properties in common withthe user-selected location, e.g. the same color, texture, etc.Alternatively or additionally, the process may use one or more objectsegmentation techniques to segment the virtual model into a number ofsegments. The process may then allow the user to select one or more ofthe segments.

In some embodiments, the process may detect multiple candidate features.The process may then indicate the detected candidate features and allowa user to select one or more of the detected candidate features. Theprocess may then determine the selected part based on the user-selectedcandidate feature.

The selection of the local attribute may at least in part be based onone or more characteristics of the part of the virtual object to whichthe local attribute is assigned and/or on one or more characteristics ofanother part of the virtual object. For example the type of localattribute or one or more characteristics of the local attribute may beselected based on one or more characteristics of the part of the virtualobject and/or of another part of the virtual object. The characteristicsof the part of the virtual object or of another part of the virtualobject may include a color, a size, a shape or one or more otherdetectable characteristics. Characteristics of the local attribute mayinclude a strength, a level, or another property of the attribute. Oneor more local attributes may at least in part be based on the propertyof the entity other than the real-world object. Generally, it will beappreciated that not all attributes assigned to the virtual object needto be determined based on a property of an entity other than thereal-world object. Some attributes may indeed be based entirely onproperties of the real-world object and/or on a specific user selection.

Accordingly, in some embodiments, assigning one or more local attributesto the selected part of the virtual object comprises:

-   -   detecting one or more properties of the selected part and/or of        one or more other parts of the virtual object, different from        the selected part and/or of an entity other than the real-world        object; and    -   selecting the one or more local attributes at least in part        based on the detected one or more properties of the selected        part and/or of one or more other parts of the virtual object        and/or of an entity other than the real-world object.

Each of the detected one or more properties may be a visual property ofa real-world object that can be attained by sight, e.g. a property thatcan be derived from a color and/or a shape and/or a size of thereal-world object.

For example, when a selected part has been assigned a capability ofdischarging a discharge element, the process may select a dischargeelement to be discharged from the selected part based on a property ofanother part of the virtual object, e.g. based on a color of a portionof the virtual object in a proximity of the selected part. For example,a red color may result in the discharge element being fire while a bluecolor may result in the discharge element being water. Alternatively oradditionally, the process may select the discharge element based on aproperty of the selected part. For example, the process may select ashape and/or size of the discharged object based on one or moredetermined properties of the selected part, e.g. based on a shape of theselected part that has been assigned the capability to discharge adischarge element. For example, the shape and/or size of the dischargeelement may be selected based on the shape and/or size of an openingfrom which the discharge element is to be discharged.

Generally, in some embodiments, one or more other attributes may beselected based on a property of the selected part and/or based on aproperty of another part of the virtual object. Examples of otherattributes may include a degree of a function, e.g. an amount ofdischarge elements to be discharge, a discharge speed, a repetitionrate, and/or the like.

In some embodiments, the assigned local attribute has an associatedattribute direction and the method further comprises:

-   -   determining a direction associated with the selected part of the        virtual object; and    -   assigning the determined direction as an attribute direction to        the assigned local attribute.

For example, the local attribute may be a movement and the attributedirection may be a direction of the movement. Alternatively, the localattribute may be a rotation of a part of the virtual object and theattribute direction may be a direction of the axis of rotation. Yetalternatively, the local attribute may be a discharge capability ofdischarging one or more discharge elements from a part of the virtualobject, and the attribute direction may be a direction along which thedischarge element is discharged.

The direction associated with the selected part may e.g. be determinedas a surface normal of a surface location of the predetermined part,e.g. a surface normal at a centre, e.g. a geometric center, of thesurface of the selected part. Alternatively, the direction of the partmay be determined using another mechanism, e.g. by detecting one or moreedges of the selected part and detecting a direction of the one or moreedges. In yet another alternative embodiment, the direction may bedetected from one or more detected features. For example, the processmay detect an ellipse in a view of the virtual object and detect thedirection from the major and minor axes of the ellipse, e.g. such thatthe direction is a normal direction from a center of a circular discthat results in an ellipse when viewed from said viewpoint.

In some embodiments, the virtual object is a vehicle operatable by avirtual character or a creature on which a virtual character can ride;the assigned local attribute is a riding position of the virtualcharacter relative to the virtual object; and the method comprises:

-   -   determining a surface normal of a surface of the virtual object        at a selected riding position; and    -   determining a riding posture of the virtual character based on        the determined surface normal.

In some embodiments, the process allows a user to indicate the ridingposition. During the selection process the process may animate a virtualcharacter to climb on top of the virtual object towards the indicatedriding position. To this end, the process may use the surface normal ofthe digital representation of the virtual object to determine theorientation of the virtual character while climbing towards the ridingposition.

In some embodiments, selecting a part of the virtual object comprises:

-   -   recognising a part of the virtual object as a representation of        a recognised one of a plurality of predetermined parts, the        recognised part corresponding to a subset of said plurality of        geometric elements; wherein digital representations of the        plurality of predetermined parts are stored in a library of        predetermined parts; wherein one or more of the digital        representations of the predetermined parts have associated with        them one or more predetermined attributes; and    -   replacing the subset of geometric elements with the stored        digital representation of the recognised predetermined part.

For example, the real-world object may be a toy construction modelconstructed from a plurality of construction elements and the processmay have access to a library of virtual construction elementscorresponding to the respective real-world construction elements. Thetoy construction elements may comprise coupling members for detachablyinterconnecting the toy construction elements with each other. Theprocess may recognise one or more construction elements as being part ofthe real-world object. The process may then replace the correspondingpart or parts of the virtual object that correspond to the recognisedtoy construction elements by the digital representation obtained fromthe repository. Accordingly, the virtual object may be represented basedon a more accurate digital representation of the individual constructionelements than may be achievable from a conventional 3D reconstructionpipeline. Moreover, some of the virtual construction elements may havepredetermined functionalities associated with them. For example, a wheelmay be animated to rotate, a door may be animated to be opened, a firehose may be animated to eject water, a canon may be animated todischarge projectiles, etc.

A user may thus create a real-world toy construction model resembling anobject to be used as a virtual object in a computer-generated virtualenvironment. As the user may construct these objects from toyconstruction elements, the user has a large degree of freedom as to howthe object is constructed. Moreover, the system provides the user with aflexible, yet easy-to understand and easy-to use mechanism forinfluencing the desired behaviour or other attributes of the virtualobject in the virtual environment, e.g. behavioural attributes such ascapabilities, needs, preferences or other attributes of the virtualobject, or other game-related attributes of a virtual object.

Alternatively or additionally to replacing a subset of geometricelements with the stored digital representation of a recognisedpredetermined part, the process may utilise the recognition of apredetermined part in a different way. For example, based on therecognised part, the process may determine a relative scale,orientation, size and/or the like of the created virtual object withinthe virtual environment (e.g. relative to other elements near thecreated virtual object within the virtual environment).

The process may create a computer-generated virtual environment andsimulate the evolution of the virtual environment over time, includingthe behaviour of one or more virtual characters and/or the attributes ofone or more virtual objects within the virtual environment. For thepurpose of the present description a computer-generated virtualenvironment may be persistent, i.e. it may continue to evolve and existeven when no user interacts with it, e.g. between user sessions. Inalternative embodiments, the virtual environment may only evolve as longas a user interacts with it, e.g. only during an active user session. Avirtual object may be at least partly user-controlled, i.e. the dataprocessing system may control the behaviour of a virtual object at leastpartly based on received user inputs. A computer-generated virtualenvironment may be a single-user environment or a multi-userenvironment. In a multi-user environment more than one user may interactwith the virtual environment concurrently, e.g. by controllingrespective virtual characters or other virtual objects in the virtualenvironment. Computer-generated virtual environments and, in particular,persistent, multi-user environments are sometimes also referred to asvirtual worlds. Computer-generated virtual environments are frequentlyused in game systems, where a user may control one or more virtualcharacters within the virtual environment. A virtual charactercontrolled by the user is sometimes also referred to as “the player.” Itwill be appreciated that at least some embodiments of the aspectsdescribed herein may also be used in contexts other than game play.Examples of computer-generated virtual environments may include but arenot limited to videogames, e.g. games of skill, adventure games, actiongames, real-time strategy games, role play games, simulation games, etc.or combinations thereof. Some virtual environments may be elaborate withmany virtual objects, virtual landscapes, virtual structures, etc. whileother virtual environments may be relatively simple environments, e.g.merely defining a 2D or 3D space into which a virtual object can beinserted and, optionally move around, rotate, etc. Further examples ofvirtual environments include a model viewer that allows a user to viewand/or explore a virtual object such as a virtual toy constructionmodel, e.g. in a virtual 3D space. In some embodiments, the method maycomprise communicating a representation of the created virtual model,optionally including data indicative of the assigned attribute(s) toanother data processing system so as to allow the other data processingsystem to include into a virtual environment. In some embodiments theother data processing system may assign one or more (further) attributesto the virtual object. Thus created virtual objects may e.g. be sharedvia social media, messages and/or other communication channels andviewed or used by the recipient, optionally including the associatedattributes, such as its functional or other capabilities.

The present disclosure relates to different aspects including the methoddescribed above and in the following, corresponding apparatus, systems,methods, and/or products, each yielding one or more of the benefits andadvantages described in connection with the first mentioned aspect, andeach having one or more embodiments corresponding to the embodimentsdescribed in connection with the first mentioned aspect and/or disclosedin the appended claims.

In particular, the present disclosure further relates to acomputer-implemented method for creating a virtual object; the methodcomprising:

-   -   obtaining a digital representation of a real-world object, the        digital representation representing a visual appearance of a        shape of the real-world object;    -   detecting, from the received digital representation, one or more        properties of the real-world object;    -   creating a virtual object in a virtual environment, the virtual        object representing the real-world object; and    -   assigning, based on the detected one or more properties, an        attribute to the virtual environment.

The present disclosure further relates to a data processing systemconfigured to perform the steps of an embodiment of one or more of themethods disclosed herein. To this end, the data processing system maycomprise or be connectable to a computer-readable medium from which acomputer program can be loaded into a processor, such as a CPU, of thedata processing system for execution. The computer-readable medium maythus have stored thereon program code means adapted to cause, whenexecuted on the data processing system, the data processing system toperform the steps of the method described herein. The data processingsystem may comprise a suitably programmed computer such as a portablecomputer, a tablet computer, a smartphone, a PDA or another programmablecomputing device having a graphical user-interface. In some embodiments,the data processing system may include a client system and a hostsystem. The client system may comprise a camera or other sensor deviceand a user interface; the host system may be configured to create andcontrol a virtual environment. The client and the host system may beconnected via a suitable communications network such as the internet.

Generally, here and in the following the term processor is intended tocomprise any circuit and/or device and/or system suitably adapted toperform the functions described herein. In particular, the above termcomprises general- or special-purpose programmable microprocessors, suchas a central processing unit (CPU) of a computer or other dataprocessing system, Digital Signal Processors (DSP), Application SpecificIntegrated Circuits (ASIC), Programmable Logic Arrays (PLA), FieldProgrammable Gate Arrays (FPGA), special purpose electronic circuits,etc., or a combination thereof. The processor may be implemented as aplurality of processing units.

Some embodiments of the data processing system include a sensor devicesuch as an image capture device, e.g. a camera, e.g. a video camera, orany other suitable device for obtaining one or more images of a toyconstruction model or other real-world object. Other embodiments may beconfigured to generate a digital representation of the real-world objectand/or retrieve a previously generated digital representation.

The sensor device may comprise a radiation source operable to directradiation towards the toy construction model. For example, an imagecapture device may comprise a flash-light, one or more LEDs, a laser,and/or the like. Alternatively, the image capture device may be operableto detect radiation reflected by the object. Here, the term reflectionis intended to refer to any type of passive emission responsive toreceived radiation or waves, including diffuse reflection, refraction,etc. Embodiments of the data processing system may include a display orother output device for presenting the virtual environment to a user.Embodiments of the data processing system may also comprise a scanningstation, e.g. including the sensor device and an object support such asa turntable.

The present disclosure further relates to a computer program productcomprising program code means adapted to cause, when executed on a dataprocessing system, said data processing system to perform the steps ofone or more of the methods described herein.

The computer program product may be provided as a computer-readablemedium, such as a CD-ROM, DVD, optical disc, memory card, flash memory,magnetic storage device, floppy disk, hard disk, etc. In otherembodiments, a computer program product may be provided as adownloadable software package, e.g. on a web server for download overthe internet or other computer or communication network, or anapplication for download to a mobile device from an App store.

The present disclosure further relates to a toy construction system thatcomprises a data processing system as described above and a plurality oftoy construction elements as described herein. The data processingsystem may include a processor; the data processing system may furthercomprise an image capture device and a display or other output device.

The present disclosure further relates to a toy construction setcomprising a plurality of toy construction elements, and instructions toobtain a computer program computer program code that causes a dataprocessing system to carry out the steps of an embodiment of one or moreof the methods described herein, when the computer program code isexecuted by the data processing system. For example, the instructionsmay be provide in the form of an internet address, a reference to an Appstore, or the like. The toy construction set may even comprise acomputer-readable medium having stored thereon such as computer programcode. Such a toy construction set may even comprise a camera or otherimage capture device connectable to a data processing system.Optionally, the toy construction set may further include a scanningstation, a sensor device or both.

Embodiments of the toy construction system allow a user to construct alarge variety of toy construction models in a uniform andwell-structured manner and with a limited set of different toyconstruction elements. For example, a toy construction system may beprovided as a toy construction set comprising a number of toyconstruction elements. The user may also create a large variety ofvirtual objects which exhibit a large variety of behavioural attributesin a virtual environment.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 schematically illustrates an embodiment of a system for creatinga virtual object.

FIG. 2 shows a flowchart of an embodiment of a process described herein.

FIGS. 3-4 illustrate examples of a user-assisted selection of a part ofa virtual object.

FIG. 5 illustrates an example of a process for creating a virtual objectin a virtual environment based on a real-world object.

FIG. 6 illustrates an example of a process for creating a virtual objectbased on inputs from another detection device.

FIGS. 7-9 illustrate further examples of a system for creating a virtualobject.

FIG. 10 illustrates another example of a process for creating a virtualobject.

FIGS. 11A-D and 12-13 illustrate further examples of a process forcreating a virtual object based on multiple real-world objects.

FIG. 14 illustrates another example of a process for creating a virtualobject based on a real-world object and an existing virtual model.

FIGS. 15-17 illustrate yet further examples of a process for creating avirtual object based on multiple real-world objects.

DETAILED DESCRIPTION

Various aspects and embodiments of methods, apparatus and toyconstruction systems disclosed herein will now be described withreference to toy construction elements in the form of bricks, e.g. inthe form of toy construction elements available under the name of LEGO.However, the invention may be applied to other forms of toy constructionelements for use in toy construction sets.

FIG. 1 shows an embodiment of a toy construction system. The systemcomprises a computer 101 or other data processing system, an inputdevice 102, a display 103, a sensor device comprising a camera 104, anobject support comprising a turntable 105, and a toy construction model106 constructed from one or more toy construction elements of the toyconstruction system.

The computer 101 may be a personal computer, a desktop computer, alaptop computer, a handheld computer such as a tablet computer, asmartphone or the like, a game console, a handheld entertainment device,or any other suitably programmable computer. The computer 101 comprisesa processor 109 such as a Central Processing Unit (CPU) and one or morestorage devices such as a memory, a hard disk, and/or the like.

The display 103 is operatively coupled to the computer 101 and thecomputer 101 is configured to present a graphical representation of avirtual environment 111 on the display 103. Though illustrated asseparate functional blocks in FIG. 1, it will be appreciated that thedisplay may be integrated in the housing of the computer.

The input device 102 is operatively coupled to the computer 101 and isconfigured to receive user inputs. For example, the input device maycomprise a keyboard, a game controller, a mouse or other pointingdevice, and/or the like. In some embodiments, the system comprises morethan one input device. In some embodiments an input device may beintegrated in the computer and/or the display, e.g. in the form of atouch screen. It will be appreciated that the system may comprisefurther peripheral devices operatively coupled to, such as integratedinto, the computer.

The camera 104 is operable to capture images of the toy constructionmodel 106 and to forward the captured images to the computer 101. Tothis end, a user may position the toy construction model 106 on theturntable 105. In some embodiments, the user may construct the toyconstruction model on top of a base plate. The camera may be a digitalcamera operable to take digital pictures, e.g. in the form of atwo-dimensional array of pixels. In particular, the camera may beconfigured to capture light intensities for each pixel and additionalinformation such as polarisation information and/or a direction of asurface normal for each pixel or for groups of pixels. Alternativelyother types of sensor devices, e.g. other types of image capture devicesmay be used. Also, in alternative embodiments, the system does not use aturntable.

The display 103, the camera 104 and the input device 102 may beoperationally coupled to the computer in a variety of ways. For exampleone or more of the above devices may be coupled to the computer via asuitable wired or wireless input interface of the computer 101, e.g. viaa serial or parallel port of the computer such as a USB port, viaBluetooth, Wifi or another suitable wireless communications interface.Alternative, one or all of the devices may be integrated into thecomputer. For example, the computer may comprise an integrated displayand/or input device and/or an integrated camera. In particular, manytablet computers and smartphones comprise an integrated camera, anintegrated touch screen operable as a display and input device.

The computer 101 has stored thereon a program, e.g. an App or othersoftware application, adapted to create and control a virtualenvironment, to process captured images and to create virtual objects asdescribed herein. For example the virtual environment may be a part of acomputer game.

It will be appreciated that, in some embodiments, the computer 101 maybe communicatively connected to a host system, e.g. via the Internet oranother suitable computer network. At least a part of the processingdescribed herein may then be performed by the host system. For example,in some embodiments, a host system may generate and simulate a virtualenvironment, such as a virtual world which may be accessible by multipleusers from respective client computers. A user may use a client computerexecuting a suitable program to capture an image. The captured imagesmay be processed by the client computer or uploaded to the host systemfor processing and creation of a corresponding virtual object. The hostsystem may then add the virtual object to the virtual world and controlthe virtual object within the virtual world as described herein.

In the example of FIG. 1, the virtual environment 111 is an underwaterenvironment such as a virtual aquarium or other underwater environment.

The virtual objects 107, 108 resemble fish or other underwater animalsor creatures. However, it will be appreciated that other types ofvirtual environments may be implemented where the virtual objectsrepresent other types of virtual objects, such as other types of virtualcharacters, animals, creatures, vehicles, accessories, tools, etc.

In the example of FIG. 1, the computer has created one virtual object107 based on captured images of the toy construction model 106. Thecomputer has created the virtual object 107 so as to resemble the toyconstruction model, e.g. by creating a 3D mesh or another suitable formof representation. In the example of FIG. 1, the virtual object 107resembles the shape and color of the toy construction model 106. In thepresent example, the virtual object even resembles the individual toyconstruction elements from which the toy construction model 106 has beenconstructed. It will be appreciated, however, that different levels ofresemblance may be implemented. For example, in some embodiments, thevirtual object may be created so as to resemble only the overall shapeof the construction model without simulating its internal structure ofindividual toy construction elements. The virtual object may also becreated to have a size corresponding to the size of the virtualconstruction element, e.g. by providing a reference length scale on theturntable 105 so as to allow the computer to determine the actual sizeof the toy construction model. Alternatively, the computer may use thesize of the toy construction elements as a reference length scale. Inyet alternative embodiments, the user may manually scale the size of thevirtual object.

The system illustrated in FIG. 1 is configured to create or otherwiseobtain a 3D or other digital representation of a real-world object whichmay then be used to create a virtual object or character, e.g. asdescribed in more detail below. The system is further operable to obtainan input indicative of one or more properties of an entity differentfrom the real-world object and to assign, based on at least the obtainedinput, an attribute to the created virtual object, e.g. as described inmore detail below.

FIG. 2 shows a flowchart of an embodiment of a process described herein.For example, the process may be performed by one of the systemsdescribed in FIGS. 1 and 7-9 or by another suitably programmed dataprocessing system.

In an initial step S1, the process obtains data indicative of the visualappearance of a toy construction model or of another real-world object.For example, the process may capture a plurality of digital images of atoy construction model at respective angular positions of a turntable onwhich the toy construction model is positioned, or otherwise fromrespective viewpoints. The data may include digital images and/or adepth map and/or another form of data representing the visual appearanceof the object, e.g. the surface texture, color, shape, etc.

In subsequent step S2, the process constructs a 3D digitalrepresentation of the toy construction model from the obtained data,e.g. from the digital images. To this end, the process may perform oneor more image processing steps known per se in the art of digital imageprocessing. For example the processing may comprise one or more of thefollowing steps: background detection, edge detection, colorcalibration, color detection.

A process for generating a 3D digital representation of a real-worldobject from a plurality of captured images may employ any suitabletechnique known as such in the art of object reconstruction. Forexample, in one embodiment, the captured images are processed in orderto extract:

-   -   information about the real-world scene as seen through the        camera,    -   a turntable position or camera viewpoint relative to the object,        and    -   an object silhouette.

In a subsequent step, the obtained silhouettes may be projected onto avoxelized volume that is carved accordingly. Subsequently, a marchingcube algorithm is applied to the 3D object obtained from carving. Thefinal mesh is then obtained and the textures cut out from the cameraframes are applied on top of that. The process may result in a meshrepresentation of the surface of the object, e.g. using triangles ofother polygons. Alternatively, the process may result in a voxelrepresentation of the object.

In step S3, the process obtains an input indicative of one or moreproperties of an entity different from the real-world object. The entitymay be a virtual entity, e.g. a previously created or otherwise alreadyexisting virtual object, a previously obtained or otherwise alreadyexisting digital representation of a real-world object, a data objectindicative o a user profile, etc. Alternatively, the entity may be aphysical entity, such as another real-world object, a user of thesystem, a hardware entity of the data processing system on which theprocess is executed, an external hardware entity of an external system,different from and external to the data processing system on which theprocess is executed, etc. The process may obtain the input via acommunications interface, a peripheral device, a software module and/orthe like.

In step S4, the process creates a virtual object. The virtual object hasa visual appearance defined by the 3D representation created in theprevious step or by another visual representation derived therefrom. Inaddition, the virtual object may comprise additional global attributessuch as attributes defining behavioural characteristics of the virtualobject and/or additional local attributes. These characteristics maydefine how the object (or a part thereof) moves, its capabilities andfunctions, etc.

It may be appreciated that, in some embodiments, step S4 may beperformed prior to or concurrently with step S3.

In step S5, the process determines, based at least in part on the inputreceived in step S3, one or more global and/or local attributes to beassigned to the virtual object.

In subsequent step S6, the process assigns the determined attribute tothe virtual object or to a selected part of the virtual object. To thisend, the process may set a corresponding attribute value associated withthe virtual object or with a selected part of the object in the datastructure representing the virtual object. It will be appreciated thatsome types of attributes may be represented by a single value whileother types of attributes may have a more complex representation.

It will be appreciated that steps S5 and/or S6 may be performedconcurrently with, or as part of step S4.

Generally, the assignment of local attributes may comprise selecting apart of the visual representation of the virtual object, e.g. a part ofthe 3D shape of the object. This step may be performed fullyautomatically or it may be user assisted. For example, a user maymanipulate a representation of the virtual object so as to identify thepart to be selected. Alternatively, the process may use an objectsegmentation technique and/or a feature detection technique and/oranother suitable mechanism to identify a part of the virtual object.Examples of methods for selecting a part of a virtual object will bedescribed in greater detail below. In some embodiments, the process mayidentify a number of candidate parts from which the user may select oneor more parts. The selected part may be identified as such in a suitabledata structure representing the virtual object, e.g. by identifying aplurality of mesh elements or voxels representing the selected part ofthe object.

The determination of a local attribute to be assigned to a selected partof the virtual object may be performed automatically or partly based ona user input. To this end, the user may select an attribute, e.g. from alist of available or determined attributes. Alternatively oradditionally, the process may automatically determine an attribute to beassigned to the selected part—or at least one or more characteristics ofthe attribute. For example, the process may select an attribute based onthe input received in step S3 and, optionally, based on a property ofthe selected part and/or based on a property of other parts of thevirtual object. Yet alternatively, the process may determine a pluralityof candidate attributes based at least in part on the input received instep S3, and the user may select an attribute from the determinedcandidate attributes.

It will be appreciated that more than one attribute may be assigned to aselected part of the object and that more than one part of the objectmay be selected and assigned a virtual attribute.

FIGS. 3-4 illustrate examples of a user-assisted selection of a part ofa virtual object.

In particular, FIG. 3 illustrates a selection of a part of the objectbased on the detection of a predetermined feature. More specifically, inthe present example, the process detects ellipses in a representation ofthe virtual object, e.g. in a 2D view of the virtual object. FIG. 3shows a representation of a created virtual object 301 within a displayarea of a computer display, e.g. of the system of FIG. 1 or anothersuitably programmed processing device or system. In this example, thevirtual object represents a vehicle that may be used by a virtualcharacter in a computer game. The virtual object has been created basedon a plurality of images taken from different viewpoints of a real-worldvehicle constructed from toy construction elements, e.g. as describedabove.

The data processing system may provide functionality that allows theuser to manipulate the view of the created virtual object 301, e.g. byrotating the object, by zooming, etc. The process may be configured todetect predetermined shapes, e.g. ellipses, polygons, etc. in thecurrent view and highlight the detected shapes. To this end, the processmay use any suitable method for the detection of predetermined featuresin images or 3D representations that are known as such in the art. Inthe example of FIG. 3, the process has detected an ellipse at the end ofa tubular construction element 302. The process has highlighted thedetected ellipse by drawing an emphasized ellipse 303 in a predeterminedcolor, e.g. in red. It will be appreciated that the process mayinitially identify multiple features, e.g. additional ellipses 304. Theprocess may then select one of the detected features, e.g. based onadditional criteria, such as color, size, orientation, user input, etc.

The process may then assign an attribute to the selected feature 303 ofthe virtual object, e.g. automatically or by allowing the user to selecta feature. In the example of FIG. 3, the process has selected a watergun functionality as an attribute to be assigned to the selected feature302. The water gun functionality simulates the discharge of water fromthe detected ellipse. The process may allow the user to select one ormore additional characteristics, e.g. the amount of water to bedischarged, the speed or range of the discharged water, the direction ofdischarge, etc. In FIG. 3, this is illustrated by symbols 305 and 306illustrating two available choices of water guns and allowing the userto select one type of water gun. Alternatively or additionally, theprocess may automatically determine one or more attributecharacteristics of the assigned attribute. In particular, the processmay determine such attribute characteristics based on an inputindicative of one or more properties of an entity different from thereal-world object from which the virtual object has been created.Optionally, the attribute characteristics may further be based on adetected property of the selected part and/or based on a property ofother parts, e.g. neighbouring parts, of the virtual object.

For example, in the present example of a water gun, the color of theselected part may determine the color of the water of a water cannonattribute or another attribute of the discharged water, e.g. the virtualtemperature of the discharged water which in turn may influence theeffect the discharged water has on aspects of the game play. The size orshape of a selected part may determine the way a discharge element isdischarged when a discharge attribute is assigned, e.g. the way thewater sprays if a water cannon attribute is applied. As yet anotherexample, a graphic marker of the real-world object and detected as partof the obtained digital representation may determine that the water ishot if a water cannon attribute is applied.

The water gun functionality is an example of an attribute that has adirection associated with it, namely in this case the direction alongwhich the water is discharged. In FIG. 3, this direction is indicated byan arrow 307. The direction may be user-selectable or it may bedetermined automatically by the process, e.g. based on the orientationof the ellipse and based on the direction and size of the major andminor axes of the ellipse.

Generally, FIG. 3 illustrates an example of a user-assisted selection ofa model feature where the process automatically detects one or moremodel features, and where the user manually selects one or more specificfeatures to which a local attribute is to be assigned. Examples ofdetectable features include a color, a shape (e.g. circle, polygon,ellipse, etc.), a 3D geometric feature (e.g. a toy constructionelement), an edge, a face, a polygon, a material (e.g. rubber), agraphic asset/marker and/or the like.

FIG. 4 illustrates another example of a user-assisted selection processfor selecting a part of the object based on the detection of apredetermined feature. In the example of FIG. 4, the process initiallyperforms an object segmentation process, e.g. using a mesh segmentationalgorithm or by detecting toy construction elements or otherpredetermined components of an object. The user may then identify one ormore of the segments, e.g. by pointing at a segment or by selecting acolor or other feature of a segment to be selected or the like. Examplesof selectable features include a color, a shape (e.g. circle, polygon,ellipse, etc.), a 3D geometric feature (e.g. a toy constructionelement), an edge, a face, a polygon, a material (e.g. rubber), agraphic asset/marker and/or the like. The process then assigns anattribute to the selected segment of the virtual object, e.g.automatically or by allowing the user to select a feature, e.g. asdescribed above.

More specifically, FIG. 4 shows a representation of a created virtualobject 301 within a display area of a computer display, e.g. of thesystem of FIG. 1 or another suitably programmed processing device orsystem. In this example, the virtual object is represented as beingpositioned on a turntable 408 of a scanning station. The process shows avirtual character 409 that can be controlled by the user to walk aroundthe virtual object 301 and to target respective parts of the virtualobject with a targeting reticule 410, e.g. a pointer, cross hair orother aiming device. In the example of FIG. 4, the process hashighlighted a segmented part 411 of the virtual object that is currentlytargeted by the virtual character 409. The user may now assign auser-selected or an automatically selected attribute, e.g. asillustrated by the functional feature 412 that may be assigned to thesegment 411.

As mentioned above, the automatic segmentation may be based on adetection of individual toy construction elements or other components inthe representation of the real-world object. To this end, the processmay have access to a library of representations of a plurality of knowntoy construction elements or other known components. The knowncomponents may be stored as CAD files or as representations, e.g. asdescribed in WO 2004/034333 or in another suitable form. Correspondingcomponents of the virtual object may then be detected and recognised bya suitable object recognition process known as such in the art. Therecognised components may then be user selectable such that attributesmay be assigned to individual components or groups of components, e.g.to a subassembly of two or more toy construction elements, e.g.including animals, known figures, characters etc. or parts thereof, e.g.a torso part, a leg part, an engine part, a wheel, etc. In yet otherembodiments, one or more parts of the virtual object may be detected andrecognised based on known graphic assets/ markers or the like.

FIG. 5 illustrates an example of a process for creating a virtual objectin a virtual environment based on a real-world object. The process maybe performed by a system as described herein, e.g. with reference to anyof FIGS. 1 and 7-9. The process initially obtains a digitalrepresentation of a real-world object 506, e.g. by performing steps S1and S2 of the method described in connection with FIG. 2. The processfurther creates a virtual object 501 in a virtual environment 511 whichis displayed on a display 503 of the system, e.g. as described inconnection with step S4 of the method of FIG. 2. The process furtherdetects (block 513) one or more features, e.g. visual characteristics ofthe real-world object and/or the digital representation thereof. Basedon the detected feature(s), the process modifies the virtual environmentinto which the created virtual object is inserted. The model featuresmay be detected automatically and the attributes may automatically beassigned to the game environment or in a user-assisted manner. Themodification of the game environment may be performed instead of or inaddition to an assignment of attributes to the virtual object asdescribed herein.

Examples of model features may include one or more of the following: acolor, an overall size of the real-world object, a detected graphicmarker, a recognized object ID, a shape or form of the real-world object(e.g. long, tall, thin etc.), etc. The detected feature may e.g. be usedto determine a type and/or number of virtual characters 514 (e.g.non-player characters) or objects (other than and in addition to thevirtual object created based on the detected real-world object) to bespawned and/or to determine attributes or behavior of the spawnedvirtual characters or objects. Alternatively or additionally, thedetected feature may be used to determine a theme of the virtualenvironment (e.g. jungle, desert, etc.) and/or granting access to a newpart of the virtual environment.

For example, when the process detects a predominantly green car, theprocess may modify the game environment by spawning more jungle and/orvirtual bugs may be attracted to the car and follow it around. Inanother example, detection of a big creature (e.g. comprising a largenumber/volume of toy construction elements) may cause the process tomodify the game environment by sending armies of enemies to attack thenewly created virtual object. In yet another example, detection of areal-world object with a graphic marker that identifies the real-worldobject may cause the process to modify the game environment by grantingaccess to a new part of the game environment, e.g. by associating thegame environment with a specific tribe of virtual creatures and open upthe gates to their kingdom.

FIG. 6 illustrates an example of a process for creating a virtual objectbased on inputs from a detection device different from the sensor devicewhich has obtained the input on which the digital representation of thereal-world object is based. The process may be performed by a system asdescribed herein, e.g. with reference to any of FIGS. 1 and 7-9. Theprocess obtains a digital representation of a real-world object 506,e.g. by performing steps S1 and S2 of the method described in connectionwith FIG. 2. The process further creates a virtual object 501 in avirtual environment 511 which is displayed on a display 503 of thesystem, e.g. as described in connection with step S4 of the method ofFIG. 2. The process further detects (block 613) one or more additionalreal-world objects 615 and, based on the identity and/or a detectablecharacteristic of the additional real-world objects, the process assignsone or more attributes, e.g. behavioural attributes to the createdvirtual object 501, e.g. as described in connection with steps S3, S5-S6of FIG. 2.

The additional real-world objects may be detected concurrently with theobtaining of a digital representation; alternatively, the detection ofthe real-world objects may occur before or after the obtaining of thedigital representation. The additional real-world objects may bedetected by any suitable detection mechanism. In the example of FIG. 6,the data processing system comprises an RFID reader 617 and theadditional real-world objects 615 are attached to respective RFID tags616 based on which the additional real-world objects are detectable andrecognizable when placed in a detection range of the RFID reader 617. Itwill be appreciated that the additional real-world objects mayalternatively be detected by another suitable detection mechanism, e.g.based on a QR code. Accordingly, the system may comprise a detectiondevice for detecting additional real-world objects. The detection devicemay be a camera, a detection device using a radio-frequency signal, abarcode scanner, and/or the like.

For example, while scanning a real-world object 506, the user may placea number of figurines 615 that are each attached to an RFID tag 616 onthe RFID reader. Each tag 616 may represent a virtual character havingrespective digital behavioral attributes. The process may then assign acombination, e.g. a random mix, of the behavioral attributes of thevirtual characters represented by the tags 616 to the virtual object 506created based on the scanned digital representation. The assignment ofattributes based on detected additional real-world objects may beperformed automatically or in a user-assisted manner. For example, inone embodiment, the detection of tags may 616 may cause the attributesrepresented by them to be available in a menu of selectable attributes,from which the user may select a set of attributes to be assigned to thecreated virtual object 501.

In some embodiments, the process may create one or more additionalvirtual objects based on the detected additional real-world objects. Theadditional virtual objects may have associated with them one or moreattributes, and the process may assign one or more attributes to thevirtual object 501 based on attributes of the additional virtualobjects.

Generally, the assignment of attributes may be based on an additionalinput from one or more electronic devices associated with the system,other than the sensor device than is used to scan the real-world object.For example, during scanning, the system may obtain a current state orother input from the one or more electronic devices and use the obtainedinput to assign new (or modify existing) attributes to the createdvirtual object. This may be done automatically or in a user-assistedmanner. For example, the system may obtain input from the electronicdevice(s) and make new/modified attributes available to the user formanual assignment, based on the parameters it receives.

In one particular example, the system may comprise a virtual realitysystem. During the process of scanning the real-world object forcreating a corresponding virtual object, a user may be prompted by thesystem to define how the virtual object is to move in the virtualenvironment, and the user may perform movements that are sensed by amotion sensing device of the virtual reality system. The capturedmovements may then be assigned to the virtual object.

Examples of electronic devices from which inputs may be obtained andused for defining attributes of the created virtual object include anelectronic device separate from the image capture device, such as anadditional sensor which may be integrated into the same housing as theimage capture device or be embodied as a physically separate device.Examples of electronic devices include an RFID reader, a VR system, amobile device, a game controller, a joystick, a steering wheel gamecontroller, a smart TV, a handheld device, etc.

FIGS. 7-9 illustrate further examples of a system for creating a virtualobject.

In particular, FIG. 7 shows an embodiment of a toy construction systemsimilar to the one described in connection with FIG. 1. The systemcomprises a computer 101, an input device 102, a display 103, a sensordevice comprising a camera 104, an object support comprising a turntable105, and a toy construction model 106 constructed from one or more toyconstruction elements, all as described in connection with FIG. 1.

The computer 101 may be a personal computer, a desktop computer, alaptop computer, a handheld computer such as a tablet computer, asmartphone or the like, a game console, a handheld entertainment device,or any other suitably programmable computer. The computer 101 comprisesa processor 109 such as a Central Processing Unit (CPU) and one or morestorage devices such as a memory, a hard disk, and/or the like, also allas described in connection with FIG. 1.

In addition the computer 101 comprises an additional information source718, e.g. a sensor or data storage, operable to provide an inputindicative of one or more properties of an entity different from thereal-world object 106.

The computer 101 has stored thereon a program, e.g. an App or othersoftware application, adapted to simulate a virtual environment, toprocess captured images and to create virtual objects as describedherein. To this end, the computer may assign one or more attributes tothe created virtual objects at least in part based on an input receivedfrom the additional information source 718 as described herein.

It will be appreciated that the additional information source 718 may beintegrated into the same housing as the computer and/or the displayand/or the image capture device. In other embodiments, the additionalinformation source may be a peripheral device that is connectable to thecomputer, e.g. by a wired or wireless connection, or the sensor mayotherwise be communicatively coupled to the computer.

The additional information source 718 may be a sensor operable to detecta property of the environment of the computer, e.g. detect the presenceof another real-world object, recognise another real-world object withinthe environment, detect a property of another real-world object, and/orthe like. Examples of such sensors may include an IR sensor, a lightsensor, a proximity sensor, an RFID/NFC reader, a microphone, a camera,and accelerometer, etc.

Alternatively, the additional information source 718 may be a datastorage device or another device operable to provide game session dataand/or user profile data. Based on the user profile data and/or gamesession data, the computer may automatically assign attributes or makeattributes available to the user for manual assignment.

Examples of user profile data may include user profile data associatedwith a social network, user account data, customer account data, etc.The computer may thus assign attributes (or make them available forassignment) based on user preferences, account activity, activity on asocial network, previous purchases, etc. The user profile data may beindicative of a property of a single user or of a group of users, e.g. agroup of a social network of which the user is a member. For example,such group-related data may include achievements of group members in anonline activity, a colour scheme, insignia, flag, etc. associated withthe group.

Examples of game session data include data indicative of a game state,player progression, experience/health points, a current location in thevirtual environment, etc.

FIG. 8 shows another embodiment of a toy construction system similar tothe one described in connection with FIG. 1. The system comprises acomputer 101, an input device 102, a display 103, a sensor devicecomprising a camera 104, an object support comprising a turntable 105,and a toy construction model 106 constructed from one or more toyconstruction elements, all as described in connection with FIG. 1.

In addition, the computer 101 is communicatively coupled to anotherexternal electronic device 826, such as a mobile phone, a smart phone, atablet computer, or another electronic device. The connection 827 may bea short-range wireless connection, e.g. using IR technology, RF signals,Bluetooth, wifi, or the like.

The computer 101 has stored thereon a program, e.g. an App or othersoftware application, adapted to create and control a virtualenvironment, to process captured images and to create virtual objects asdescribed herein. To this end, the computer may assign one or moreattributes to the created virtual objects at least in part based on aninput received from the electronic device 826 as described herein. Theinput received from the electronic device may be indicative of aproperty of the electronic device itself, e.g. an operational state ofthe device, indicative of data stored by the electronic device, or aninput received by the electronic device and/or the like. Morespecifically, the input received from the electronic device may beindicative of one or more of the following: an input from anaccelerometer of the electronic device, input indicative of atime/date/weather or other environmental property at the location of theelectronic device, health data, GPS coordinates or other locationinformation of the electronic device, information about—or data receivedfrom—one or more programs/apps stored on or executed by the electronicdevice, information of one or more contacts stored by the electronicdevice, input from a light sensor, a microphone, a camera or atouchscreen of the electronic device, etc.

For example, the digital game may be running on a mobile device, or benetworked with mobile device(s) e.g. as a group of mobile devices or asa game console/PC companion app.

In one particular embodiment, a user scans a real-world objectresembling a creature. During the scanning process the game makesreference to mobile device data parameter and assigns attributes to acorresponding virtual creature based on the data from the mobile device.For example, the game may instruct the user to shake the mobile deviceto make the creature angry. The game may also register that the currenttime is midnight and unlock a ‘vampire’ attribute of the creature. Whenthe GPS location of the device is visible the creature may speak alanguage based on the registered location.

FIG. 9 shows another embodiment of a toy construction system similar tothe one described in connection with FIG. 1. The system comprises acomputer 101, an input device 102, a display 103, a sensor devicecomprising a camera 104, an object support comprising a turntable 105,and a toy construction model 106 constructed from one or more toyconstruction elements, all as described in connection with FIG. 1.

In addition, the computer 101 is communicatively coupled to a computernetwork 928, e.g. the internet. The computer 101 may thus comprise asuitable network interface 927, e.g. a wired or woreless networkadaptor.

The computer 101 has stored thereon a program, e.g. an App or othersoftware application, adapted to create and control a virtualenvironment, to process captured images and to create virtual objects asdescribed herein. To this end, the computer may assign one or moreattributes to the created virtual objects at least in part based on aninput received from a remote host 926 via the computer network 928.Examples of input received via a computer network may include data froma social network, an online game, an internet community, etc.

FIG. 10 illustrates another example of a process for creating a virtualobject. In initial steps S1 and S2, the process obtains data indicativeof the visual appearance of a toy construction model or of anotherreal-world object and constructs a 3D digital representation of the toyconstruction model from the obtained data, e.g. from the digital imagesas described in connection with steps S1 and S2 of the embodiment ofFIG. 2. The 3D digital representation may be a surface meshrepresentation or another suitable 3D digital representation. In theexample illustrated in FIG. 13, the real-world object is a toyconstruction model in the form of a figurine 1301 assembled from aplurality of toy construction elements, e.g. elements resembling a legportion 1319 of the figure, a torso portion 1320 of the figurine, a headportion 1321 of the figurine, an armoured helmet 1322 worn by thefigurine, and a number of accessories 1323 and 1324 carried by thefigurine. It will be appreciated that the process may also be performedbased on another type of toy construction model constructing from othertypes of toy construction elements.

In step S1303, the process detects one or more toy construction elementsof the toy construction model, e.g. based on a library 1325 of known toyconstruction elements. In particular, it has been realized that, for thepurpose of creating a virtual object, it may not be necessary torecognize all toy construction elements of a model, but it may sufficeto recognize certain types of toy construction elements. In particular,some parts of a virtual object are more important for a realisticanimation of the characteristics of a virtual object than others. Forexample, the torso and/or leg parts of a figurine may be more importantfor a suitable animation of a movement of the virtual figurine than e.g.a helmet or an accessory. Similarly, the wheels of a car may be moreimportant for an animation of the car than e.g. parts of the chassis.

Hence, by providing a library of selected known toy constructionelements along with their characteristics, e.g. movementcharacteristics, allows for a creation of virtual objects that exhibit arich behavior in a virtual environment while reducing the computationaltasks associated with the recognition of multiple toy constructionelements of a toy construction model. The library 1325 of known toyconstruction elements may have stored therein 3D representations of theknown toy construction elements, e.g. in the form of a surface meshrepresentation, a voxel representation, a CAD representation or thelike, e.g. as described in WO 2004/034333. The known toy constructionelements may further be stored with one or more attributes associatedwith them, e.g. a color, a skeleton for facilitating the animation ofmovements, one or more animation routines, one or more other functionalcharacteristics.

It will be appreciated that the recognition of a subset of the toyconstruction elements of a toy construction model may be performed usinga recognition process known as such in the art, e.g. by matching a 3Dmodels of the known toy construction elements to parts of the obtained3D model of the toy construction model and/or by the use of neuralnetworks or other adaptive, data-driven techniques, e.g. as described inWO 2016/075081.

In the example of FIG. 10, the process has detected the torso part 1320of the figurine as a known torso part stored in the library of knowntorso parts. It will be appreciated that, alternatively or additionally,the process may recognise other known parts, e.g. the leg portion 1319.

In subsequent step S1304, the process replaces the part of the 3Ddigital representation of the toy construction model that has beenrecognized as corresponding to the known toy construction element withthe corresponding 3D representation of the known toy constructionelement as retrieved from the library 1325. This replacement isschematically illustrated in the bottom right of FIG. 10.

The thus modified 3D representation generated in step S1304 may then beused as a 3D representation of a virtual object in a virtualenvironment. To this end the predefined attributes of the known toyconstruction element that has replaced a part of the 3D representationmay be automatically assigned to the corresponding part of the 3Dvirtual object.

Nevertheless, it will be appreciated that the process may further allowa user-assisted assignment of attributes by one of the mechanismsdescribed herein. Such attributes may be assigned to the part of thevirtual object that has resulted from the replacement step 1304, as thispart is now easily selectable by the user, e.g. as was described withreference to FIG. 4 above.

Alternatively or additionally, attributes may be assigned to other partsof the virtual object as selected by the user.

Examples of replacement of parts of the 3D representation by knownelements include:

-   -   A torso of a figurine is recognised and replaced. The underlying        bone structure to animate the known part is also associated with        the part that has been added to replace the original mesh. The        user may then manually select the torso to assign further        attributes, e.g. a ‘Ninja’ or ‘Strongman’ attribute, defining        how the torso is animated to move. The same may be done for the        legs, head etc.    -   Wheels on a car or other vehicle are recognised and replaced.        The rotational axis of the wheel is associated as an attribute        with the known wheel; the user may define further attributes,        e.g. the global behaviour of the car to define how the car        drives and how much grip attribute the tyres are assigned.    -   A toy construction element with a graphic marker is recognised        and replaced by a known element. As described above, directional        information of the surface of the recognised part is also known.        The user may then assign an attribute manually. For example        assigning a water cannon attribute to an element with a graphic        flame marker may result in hot water being sprayed that could        melt ice in a computer game.

In some embodiments, the process automatically detects and replacescolors and/or graphic markers and allows a user to manually control ananimation and display of features associated with the colors or markersvia attributes. This type of recognition and replacement may beperformed independently of any recognition of toy construction elements.Unlike the embodiments described above, where color or markers are usedas a selectable region to apply attributes, this embodiment uses arecognized marker as an auto-target for animation and/or a recognizedcolor as an auto-target for visual effects. The choice of effects oranimations may still be applied responsive to a user selection, eitherglobally or locally. Examples of such embodiments include:

-   -   Graphic markers on a creature's eyes are recognized and the        corresponding animation targets are overlaid on to the virtual        object. If the user selects the global attribute ‘angry        monster’, angry eye animations are displayed. Alternatively, the        user could locally define that the left eye will be ‘angry        monster’ and the right be ‘cute girly monster’.    -   Colors on a creature are recognized and corresponding animation        targets are overlaid over the regions. For example, the user can        locally assign ‘fur’ display attribute to all green areas and        green fur appears to grow out of the green regions. Globally the        user could assign ‘bee’ to the whole object and the process        would assign yellow and black ‘fuzz’ display attributes to the        different colored regions.

FIGS. 11A-D and 12-13 illustrate further examples of a process forcreating a virtual object based on multiple real-world constructionmodels, each constructed from respective pluralities of toy constructionelements.

To this end, a process may obtain digital representations of two or morereal-world toy construction models, e.g. by means of a system asdescribed in connection with any one of FIG. 1 or 7-9 and/or e.g. byperforming steps S1 and S2 of the method described in connection withFIG. 2.

In particular, FIGS. 11A-D illustrate an example of a process whichobtains a first and a second digital representation of a first and asecond real-world toy construction model, where the first toyconstruction model is a partial model and the second toy constructionmodel is a complete model that includes the first toy construction modelas a substructure.

FIGS. 11A-B show the first, partial toy construction model 1130 whileFIGS. 11C-D show the second, complete toy construction model 1131. Inthis particular example, the first toy construction model comprises aselection of relatively simple, easily recognisable toy constructionelements 1132, 1134, 1135 that are interconnectable to each other byjoint-like connections 1135 so as to form a skeleton. The skeletoncomprises a back-bone element 1133 and movable limb elements 1132, 1134.The toy construction elements 1132, 1134, 1135 forming the skeletonfurther comprise coupling members to which further, decorative toyconstruction elements can be attached, e.g. toy construction elements1136 shown in FIG. 11B.

The second toy construction model 1131 includes the first toyconstruction model but with additional decorative toy constructionelements attached. The resulting second toy construction model thuscomprises multiple parts which can be moved relative to each other wherethe available movements are defined by the skeleton elements 1132, 1134,1133 and their respective interconnections 1135. In this example, thedecorative elements 1136 do not contribute to the available movements.As can be seen from a comparison of FIGS. 11B and 11D, the individualskeleton elements and their interconnections are easily recognisablefrom the partial toy construction model 1130 while they are moredifficult to discern from the complete toy construction model 1131.However, the visual appearance of the final model is more readilyrecognisable from the complete toy construction model 1131.

Accordingly, the process may obtain a first digital representation ofthe first, partial toy construction model 1130 and a second digitalrepresentation of the second, complete toy construction model 1131. Theprocess may then create a virtual object resembling the second toyconstruction model, e.g. in this example a 6-legged creature. Theprocess may further recognise the toy construction elements 1132, 1134and 1133 and/or the positions and orientations of the joint-likeconnectors 1135. Based on this information, the process may identifycorresponding articulation points in the created virtual object so as toallow an animation of the legs of the 6-legged creature. The process mayeven define a virtual skeleton of the created virtual object based onthe information obtained from the first digital representation. It willbe appreciated that other embodiments of this process may be based onother types of movably interconnectable skeleton toy constructionelements, e.g. using other types of movable connections, other thanjoint like elements.

Generally, the first, partial toy construction model defines a skeletonof a second, complete toy construction model and a set of movementrules. The process is configured to recognise the skeleton and movementrules based on a digital representation of the partial toy constructionmodel and to assign movement attributes to a virtual object that iscreated based on a digital representation of the second, complete toyconstruction model.

This may thus be done in a two stage process where the user first buildsand scans a simple skeleton using identifiable skeleton elements, e.g.comprising hinge and ball joints, to define areas where movement can beanimated. The user then adds more decorative bricks to finish theappearance of the model and rescans the complete model. The computerautomatically aligns the scans and uses the first scan as a ‘bonestructure’ to animate the second. A series of animation templates (walkcycles, jumps, attacks etc) may even be mapped to user controls by theuser or the computer could assign behavior attributes automatically.

Generally, in some embodiments, the process may map one or more parts ofa first real-world object to corresponding parts of a virtual objectcreated from a second real-world object and determine one or moreproperties of the one or more parts of the first real-world object.Based on these properties the process may then assign one or more localattributes to the corresponding parts of the created virtual object.

FIG. 12 illustrates an example of of a process where virtual objectscreated from digital representations of respective real-world toyconstruction models are connected with each other in the virtualenvironment so as to form a combined virtual object.

In particular, it may be difficult, or at least computationallyexpensive, to reliably recognise all toy construction elements of areal-world toy construction model based on an obtained digitalrepresentation. Therefore, it may be difficult to create a combinedvirtual object that realistically reflects how the correspondingreal-world toy construction models can be physically attached to eachother while conforming to the construction rules imposed by the toyconstruction system. When the digital representation is a digital meshrather than a representation of recognised toy construction elements, arealistic combination of virtual objects may be even more difficult.

Therefore, in some embodiments the toy construction set includes asubset of predetermined connection elements (for example ball joint orclick hinges), and the process is configured to recognise the connectionelements when comprised in a toy construction model. To this end, theconnection elements may be provided with a unique colour, or they may bedecorated distinctively or otherwise easily recognisable. When theprocess recognizes a connection element in an obtained digitalrepresentation, the process may assign a a virtual connection point (or“snap to” point) to the created virtual object at a positioncorresponding to the position of the recognised connection elementwithin the real-world toy construction model. The virtual connectionpoint may thus define a location where another virtual object can beattached and it may define how the virtual objects may move relative toeach other when they are combined to form a combined virtual object.This allows a digital representation (e.g. a 3D mesh) with a recognizedconnection point to be joined spatially and animated in the virtualenvironment. It may be appreciated that the subset of connectionelements may comprise different types of connection elements, e.g. maleand female connection elements. The connection elements may form a truesubset of the toy construction elements comprised in the model, i.e. thetoy construction model may comprise toy construction elements other thanthe connection elements. Connection points of a virtual object may e.g.be represented as described in WO 2004/034333.

The process illustrated in FIG. 12 initially obtains a digitalrepresentation of a real-world object 1206. The process further detectsa connection element 1242 or at least a visible part 1240 thereof andcreates a virtual object 1201 in a virtual environment which isdisplayed on a display 1203 of the system, e.g. as described inconnection with step S4 of the method of FIG. 2. The process furtherassigns a virtual connection point to the created virtual object. Theprocess further obtains a digital representation of another real-worldobject 1237, detects a connection element 1241 or at least a visiblepart 1239 thereof and creates a virtual object 1238 in a virtualenvironment which is displayed on a display 1203 of the system. Theprocess may then create a combined virtual object—in this example atrain comprising an engine 1238 and cars 1201—where the train is basedon the digital representations of multiple real-world objects virtuallyattached to each other at the assigned connection points.

Accordingly, the user may create a repository of virtual objects thathave virtual attachment points such that different virtual objects maybe interconnected with each other in the virtual world so as to createcombined virtual models. For example, this may allow a user to attachvirtual accessories to a base model.

FIG. 13 illustrates another example of a process that recognizesconnection points. In this example, the recognition is not necessarilybased on a subset of predetermined connection elements but on thedetection of coupling members of the toy construction elements of thetoy construction model. The coupling members may be detected by theprocess using a suitable recognition process, e.g. based on featuredetection or other computer vision techniques known as such in the art.Many toy construction elements have visible coupling members forengaging corresponding, e.g. mating coupling members of other toyconstruction elements of the toy construction system. The positions ofthe coupling members on the toy construction elements may follow a setof rules. For example, the coupling members may be positioned on gridpoints of a regular grid. Knowledge of the set of rules may facilitaterecognition of the coupling members from an obtained digitalrepresentation of a toy construction model. Moreover, based on one ormore recognized coupling members, the process may estimate/extrapolateother valid/likely positions within the model where coupling members maybe positioned in accordance with the set of rules of the toyconstruction system, e.g. a predetermined relative distances/positionsfrom each other. The process may even determine possible locations ofcoupling members without detecting actual coupling members, e.g. bydetecting a plane sufficiently large to allow positioning of couplingmembers.

In particular, the process illustrated in FIG. 13 initially obtains adigital representation of a real-world object 1306. The process furtherdetects one or more coupling members (in this example knob-likeprotrusions which may e.g. be detected using ellipse detection) 1343 ona top surface of the real-world object. In this example, the couplingmembers are arranged as a regular 2D grid on the top surface, asillustrated by grid 1340. Based on the detection of one or more couplingmembers, the process can establish the grid locations of the grid ofcoupling members. Based on the obtained digital representation, theprocess creates a virtual object 1301 and adds connection points in theform of a virtual grid of virtual coupling members to the top surface ofthe virtual object where the virtual grid is consistent with thedetected coupling member.

The process further obtains a digital representation of anotherreal-world object 1337, detects one or more coupling member or at leasta surface—in this example a bottom surface—that is consistent with agrid 1339 of coupling members. The process then creates a correspondingvirtual object 1338 and assigns to it a corresponding virtual grid ofvirtual coupling members.

The process may then create a combined virtual object—in this example acar 1301 having an excavator arm 1338 attached to its roof. The combinedvirtual object is created by attaching the individual virtual objects1301 and 1338 to another where the created grids of virtual couplingmembers define how the virtual objects can be connected to each other.

In the above and in the following examples, creating a combined virtualobject from multiple virtual objects may be performed in a user-assistedmanner. For example, the user (or the process) may select two virtualobjects to be combined and the process may highlight the availableconnection points on both virtual objects. The user may then positionone virtual object in a proximity of the other virtual object with thedesired connection points facing each other. This may case the virtualobjects to snap together at the connection points so as to form acombined virtual object.

It will be appreciated that a virtual object that has been created basedon an obtained digital representation of a real-world toy constructionmodel may be combined with another virtual object irrespective of howsaid other virtual object has been created. For example, the othervirtual object may have been created from a real-world toy constructionmodel, it may have been pre-installed with the virtual environment orotherwise created without reference to any real-world object.

Nevertheless, the other virtual object may comprise a set of virtualconnection points to which other virtual objects and, in particular,virtual objects created from real-world toy construction models, may beconnected.

An example of such a scenario is illustrated in FIG. 14. In the exampleof FIG. 14, the process presents a previously created virtual object1401 on a display 1403 of a game system. The virtual object defines aplurality of connection points 1440, e.g. in the form of a regular gridof connection points. The presentation of the virtual object may betriggered by a game event, such as the start or completion of a gamelevel, task, or the like, based on a user selection, etc. The virtualconnection points 1440 and their geometric arrangement resemblereal-world coupling members of a real-world toy construction system.

The process may instruct (block 1413) the user to construct a real-worldtoy construction model 1437 from real-world toy construction elements1436 such that the constructed toy construction model is connectable toa set of coupling members corresponding to the virtual connection points1440 of the presented virtual object. For example, the user may beinstructed to construct the toy construction model such that it fitswithin a footprint 1444 corresponding to the grid of virtual couplingmembers 1440. In some embodiments, the user may be instructed toconstruct the toy construction model on top of a base plate or otherbase element that defines coupling members corresponding to the virtualcoupling points 1440 of the virtual object.

Subsequently, as illustrated by block 1445, the process obtains adigital representation of the constructed real-world toy constructionmodel, e.g. by means of a system as described in connection with any oneof FIG. 1 or 7-9 and/or e.g. by performing steps 51 and S2 of the methoddescribed in connection with FIG. 2. The process then creates a virtualobject 1438 from the obtained digital representation, e.g. as describedin connection with step S4 of FIG. 2. The process further creates acombined virtual object as a combination of the virtual object 1401 andthe newly created virtual object 1438 where the virtual objects arejoined at the connection points 1440 of the virtual object 1401. To thisend, the newly created virtual object 1438 is thus created with a set ofconnection points mating the connection points 1440 of virtual object1401, e.g. as described above. The combined virtual object is thuscreated based on the obtained digital representation of the real-worldobject 1437 and from information, in this example connectivityinformation, about the virtual object 1401.

Many digital games include an element of evolution where virtual objectsevolve during the course of the game as the player progresses. Theevolution of virtual objects often involves a change of appearance ofthe virtual objects. When inserting virtual objects into a game based oncaptured images or other representations of user-constructed toy modelsit may be desirable that the user does not need to completely re-build amodel and convert it into a virtual object too many times even thoughthe user may actually only make minor adjustments to a virtual object,e.g. during a game level, while retaining attributes of the originalvirtual object. A more enjoyable flow would be to build a model at thebeginning of the level and then make small adjustments, e.g. so as toovercome challenges throughout the level. A rebuild of a model can meanthat toy construction elements are added, taken away, and/or rearrangedor a combination of all.

FIG. 15 illustrates an example of a process where the user creates anupdated virtual object by adding real-world toy construction elements toa real-world toy construction model that has previously served as abasis for a previous virtual object.

In particular, in block 1513, the process initially obtains a digitalrepresentation of—and creates a virtual object from—a constructedreal-world toy construction model 1506, e.g. by means of a system asdescribed in connection with any one of FIG. 1 or 7-9 and/or e.g. byperforming steps S1, S2 and S4 of the method described in connectionwith FIG. 2. Subsequently, the user adds additional toy constructionelements 1536 to the real-world toy construction model so as to createan updated toy construction model 1537. As illustrated by block 1545,the process then obtains a digital representation of—and creates avirtual object from—the updated real-world toy construction model 1537,e.g. by means of a system as described in connection with any one ofFIG. 1 or 7-9 and/or e.g. by performing steps S1, S2 and S4 of themethod described in connection with FIG. 2.

Subsequently, as illustrated by block 1546, the process compares thepreviously created virtual object and the subsequently created virtualobject so as to identify the added parts. This comparison may beperformed based on obtained digital representations (a point cloud, amesh etc.) or any other suitable representation of the respectivevirtual objects. The identification of the added parts also allows theprocess an identification of connection points 1547 of the originalvirtual object 1501 where the added parts have been added to theoriginal model. The process may thus create a virtual object from whichindividual virtual parts may be removed as illustrated by virtual object1501 and virtual parts 1548 in FIG. 15. All local attributes that maypreviously have been assigned to the original virtual object may stillremain assigned to the updated virtual object.

FIG. 16 illustrates a similar process but where the user, rather thanadding toy construction elements to a base model, rearranges the toyconstruction elements that have formed an original model so as toconstruct an updated toy construction model including the same elementsas the original model.

Local attributes that have previously been mapped to parts of anoriginal virtual object (created based on the base model) may then bere-mapped by the process to the corresponding elements of an updatedvirtual model that is created based on the updated toy constructionmodel.

In particular, in block 1651, the process initially obtains a digitalrepresentation of—and creates a virtual object 1601 from—a constructedreal-world toy construction model 1606, e.g. by means of a system asdescribed in connection with any one of FIG. 1 or 7-9 and/or e.g. byperforming steps S1, S2 and S4 of the method described in connectionwith FIG. 2. The real-world toy construction model comprises toyconstruction elements 1649 and 1650. In block 1652, the process assignslocal attributes to parts of the created virtual object that correspondto the elements 1649 and 1650 of the real-world model, e.g. as describedin connection with FIGS. 3 and 4.

Subsequently, the rearranges the elements 1649 and 1650 so as to createan updated toy construction model 1637. As illustrated by block 1653,the process then obtains a digital representation of—and creates avirtual object 1638 from - the updated real-world toy construction model1637, e.g. by means of a system as described in connection with any oneof FIG. 1 or 7-9 and/or e.g. by performing steps 51, S2 and S4 of themethod described in connection with FIG. 2.

Subsequently, as illustrated by blocks 1654-1655, the process comparesthe previously created virtual object 1601 and the subsequently createdvirtual object 1638 so as to identify the rearranged parts 1649 and 1650that have had virtual attributes associated with it in the originalmodel. This comparison may be performed based on obtained digitalrepresentations (a point cloud, a mesh etc.) or any other suitablerepresentation of the respective virtual objects. When the model isre-scanned the process may perform a volume analysis to see if the same(approximate) volume of toy construction elements is present. Theprocess further seeks to identify any elements or features thatpreviously had attributes assigned to them. The user can help re-assignif links are lost. The identification of the rearranged parts allows theprocess to re-map local attributes from the parts of the originalvirtual object 1601 which correspond to the rearranged elements to theparts of the updated virtual object 1638 that correspond to there-arranged elements.

FIG. 17 illustrates an example where the process defines customanimation and display states of a scanned toy construction model. Tothis end, the process combines a sequence of scans (1751, 1752) of areposed or rebuilt model 1706, 1737 to display an animation sequence1701, 1738 like a stop motion animation. This animation may then beassigned to a virtual object as a movement attribute. To this end, theprocess may even blend the digital representations together to create asmooth animation

In other examples, different digital representations of a reposed orrebuild model may be selectively used as a representation of a virtualmodel responsive to game events, e.g. responsive to user inputs.

Embodiments of the method described herein can be implemented by meansof hardware comprising several distinct elements, and/or at least inpart by means of a suitably programmed microprocessor.

In the claims enumerating several means, several of these means can beembodied by one and the same element, component or item of hardware. Themere fact that certain measures are recited in mutually differentdependent claims or described in different embodiments does not indicatethat a combination of these measures cannot be used to advantage.

It should be emphasized that the term “comprises/comprising” when usedin this specification is taken to specify the presence of statedfeatures, elements, steps or components but does not preclude thepresence or addition of one or more other features, elements, steps,components or groups thereof.

1. A method, implemented by a data processing system, for creating avirtual object in a virtual environment; the method comprising:obtaining a digital representation of a real-world object, the digitalrepresentation representing a visual appearance of a shape of thereal-world object; obtaining an input indicative of one or moreproperties of an entity different from the real-world object; creating avirtual object representing the real-world object; and assigning, basedon at least the obtained input, an attribute to the created virtualobject.
 2. A method according to claim 1, wherein the entity is anothervirtual object.
 3. A method according to claim 2, wherein the othervirtual object is a virtual object created based on another receiveddigital representation of another real-world object, the other digitalrepresentation representing a visual appearance of a shape of the otherreal-world object.
 4. A method according to claim 1, further comprising:obtaining a first digital representation of a first real-world object;obtaining a second digital representation of a second real-world object;creating a virtual object, wherein one or more parts of the virtualobject having an appearance corresponding the second real-world object;and assigning the attribute to the virtual object; wherein the attributeis determined at least in part based on the obtained first digitalrepresentation.
 5. A method according to claim 4, wherein the firstreal-world object is a first toy construction model being constructedfrom a first plurality of toy construction elements; wherein the secondreal-world object is a second toy construction model being constructedfrom a second plurality of toy construction elements; and wherein thetoy construction elements of the first and second pluralities of toyconstruction elements each comprise one or more coupling membersconfigured for detachably interconnecting the toy construction elementswith each other.
 6. A method according to claim 5, wherein the secondplurality of toy construction elements includes the first plurality oftoy construction elements.
 7. A method according to claim 1, wherein theattribute is indicative of at least a first and a second state of thevirtual object; and wherein the method comprises: representing the atleast a first and a second states of the virtual object; wherein thefirst state is based on the obtained first digital representation andthe second state is based on the obtained second digital representation.8. A method according to claim 4, wherein the first real-world objectcomprises a plurality of parts, and wherein the method comprises:detecting at least a first part of the first real-world object, thefirst part having a first property; determining a correspondence betweenthe detected first part and a corresponding part of the created virtualobject; and assigning an attribute to the corresponding part of thecreated virtual object, wherein the assigned attribute is based at leastin part on the first property.
 9. A method according to claim 8, furthercomprising: detecting one or more other parts of the first real-worldobject that are movable relative to each other; determiningcorresponding one or more parts in the created virtual object; andrepresenting a movement of the determined corresponding one or moreparts relative to each other based on the detected one or more parts ofthe first real-world toy construction model.
 10. A method according toclaim 8, wherein the attribute is indicative of at least a first and asecond state of the corresponding part of the virtual object; andwherein the method comprises: representing the at least a first and asecond state of the corresponding part of the virtual object; whereinthe first state is based on the obtained first digital representationand the second state is based on the obtained second digitalrepresentation.
 11. A method according to claim 4, wherein the attributeis indicative of a visual appearance of the virtual object; and whereinthe method comprises: representing the virtual object as a combinedvirtual object, combined from a first object part resembling the firstreal-world object and a second object part resembling the secondreal-world object.
 12. A method according to claim 11, furthercomprising: detecting, based on the obtained first digitalrepresentation, a first connection element of the first real-worldobject; detecting, based on the obtained second digital representation,a second connection element of the second real-world object, the secondconnection element being able to engage the first connection element soas to interconnect the first and second real-world objects with eachother; wherein the first and second object parts are interconnected atrespective first and second virtual connection elements corresponding tothe respective first and second connection elements of the first andsecond real-world objects.
 13. A method according to claim 1, furthercomprising controlling the virtual object in a computer-generatedvirtual environment to have a behaviour based on the one or moreassigned attributes.
 14. A method according to claim 1, furthercomprising storing the virtual object so as to make the virtual objectavailable in the virtual environment independently of the presence ofthe real-world object.
 15. A method according claim 1, wherein obtainingthe digital representation comprises receiving input data from a sensordevice, the input data being indicative of the visual appearance of thereal-world object; and wherein obtaining the input indicative of one ormore properties of the entity different from the real-world objectcomprises receiving said input from a detection device different fromthe sensor device.
 16. A method according to claim 15, wherein theentity comprises said detection device and wherein the property is aproperty of the detection device.
 17. A method according to claim 15,wherein the entity is different from the detection device, and whereinthe detection device is operable to detect said property.
 18. Acomputer-implemented method for creating a virtual object, the methodcomprising: obtaining a digital representation of a real-world object,the digital representation representing a visual appearance of a shapeof the real-world object; detecting, from the received digitalrepresentation, one or more properties of the real-world object;creating a virtual object in a virtual environment, the virtual objectrepresenting the real-world object; and assigning, based on the detectedone or more properties, an attribute to the virtual environment.
 19. Amethod according to claim 18, wherein the obtained digitalrepresentation represents at least a surface geometry of the real-worldobject.
 20. A data processing system configured to perform the steps ofthe method according to claim
 1. 21. A computer program productcomprising program code means adapted to cause, when executed on a dataprocessing system, said data processing system to perform the steps ofthe method according to claim
 1. 22. A toy construction systemcomprising: the data processing system as defined in claim 20; and aplurality of toy construction elements, each of said plurality of toyconstruction elements comprising one or more coupling members configuredfor detachably interconnecting the plurality of toy constructionelements with each other so as to form a real-world object.